307f0bd627e969ef5c7ca34b0841fad23b3bf3d1,src/main/java/com/ociweb/pronghorn/iot/i2c/I2CJFFIStage.java,I2CJFFIStage,run,#,109
Before Change
long waitTime = blockStartTime - hardware.currentTimeMillis();
if(waitTime>0){
//do commands now while we wait for the next block.
processReleasedCommands(waitTime);
waitTime = blockStartTime - hardware.currentTimeMillis();
if (waitTime>0) {
return; //Enough time has not elapsed to start next block on schedule
After Change
do {
long waitTime = blockStartTime - hardware.nanoTime();
if(waitTime>0){
if (null==rate || (waitTime > 2*rate.longValue())) {
processReleasedCommands(waitTime);
return; //Enough time has not elapsed to start next block on schedule
} else {
while (hardware.nanoTime()<blockStartTime){